import { loginAPI } from '@/api/user'
import { getToken, removeToken, setToken } from '@/utils/auth'
import { getProfileAPI } from '@/api/user'

export default {
  // 开启命名空间
  namespaced: true,
  state: {
    // mass: '这是user模块下的456',
    // obj: {
    //   uuname: '不是管理员',
    //   ppad: 10001
    // },
    // 读取token(读不到就是空)
    token: getToken() || '',
    profile: {} // 用户的信息（包括权限）
  },
  mutations: {
    // change(state) {
    //   state.mass = '0000000'
    // }
    setToken(state, token) {
      state.token = token
      // 持久化（存）
      setToken(token)
    },
    removeToken(state) {
      // 清空vuex
      state.token = ''
      // 清空持久化
      removeToken()
    },
    // 设置及用户信息
    setProfile(state, profile) {
      state.profile = profile
    }
  },
  actions: {
    // changeAA(context) {
    //   setTimeout(() => {
    //     context.commit('change')
    //   }, 1000)
    // }
    async doLogin(context, { username, password }) {
      // 调用接口，拿到token
      const res = await loginAPI({ username, password })
      // token给到mutations,更新到state
      context.commit('setToken', res.data.token)
      // 获取用户信息
      // context.dispatch('getProfile')
    },
    // 获取用户信息（包含权限）
    async getProfile(context) {
      const res = await getProfileAPI()
      console.log(res)

      // 保存到state
      context.commit('setProfile', res.data)
      return res.data.permissions
    }
  }
}
